iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
自我挑戰組

重新開始 JavaScript系列 第 23

[Day23] 物件傳參考範例

  • 分享至 

  • xImage
  •  

經由昨天我們可以知道,純值在傳遞時是透過複製的方式,而物件則是利用傳參考的方式,今天就來練習幾個關於物件傳參考的範例:

範例1

var family = {
    name: 'Carol家',
    members: {
        dad: '老爸',
        mom: '老媽',
        child: 'Carol'
    }
};
var member = family.members;

member.child = 'Mary';
console.log(family);
// {name: 'Carol家', members: {dad: '老爸', mom: '老媽', child: 'Mary'}}
console.log(member);
// {dad: '老爸', mom: '老媽', child: 'Mary'}

member = {
    child: 'Jay'
};
console.log(family);
// {name: 'Carol家', members: {dad: '老爸', mom: '老媽', child: 'Mary'}}
console.log(member);
// {dad: '老爸', mom: '老媽', child: 'Jay'}

範例2

var a = { x: 1 };
a.y = a;
console.log(a);

範例3

var a = { x: 1 };
var b = a;
a.y = a = { x: 2 };
// a = a.y = { x: 2 }; 順序性不影響結果
console.log(a.y); // undefined
console.log(a); // {x: 2}
console.log(b); // {x: 1, y: {x: 2}}
console.log(a === b.y); // true

範例4

var a = { x: 1};
var b = a;
a.x = { x: 2};
a.y = a = { y: 1};
console.log(a); // {y: 1}
console.log(b); // {x: {x: 2}, y: {y: 1}}
console.log(a === b.y); // true

參考文獻

六角學院 - JavaScript 核心篇


上一篇
[Day22] 傳值跟傳參考概念
下一篇
[Day24] 求值策略
系列文
重新開始 JavaScript32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言